/**
 * 封装http请求
 */
var app = getApp();

const baseUrl = app.globalData.baseUrl || ''

// GET
const $get = (params) => {
  let {
    url,
    data,
    onSuccess,
    onError,
    onFinish
  } = params
  wx.showLoading();
  let token = wx.getStorageSync('token')
  wx.request({
    url: baseUrl + url,
    header: {
      'token': token,
    },
    method: 'GET',
    data: data,
    success: function (res) {
      // token过期，跳到授权页面
      // if (res.data.code === 401) {
      //   wx.reLaunch({
      //     url: '/pages/basicFunction/login/login'
      //   })
      //   return;
      // }

      if (res.data.code !== 0) {
        if (onError) {
          return onError(res);
        }
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // });
        return;
      }

      onSuccess && onSuccess(res);

    },
    complete(res) {
      wx.hideLoading();
      onFinish && onFinish(res)
    }
  })
}

// POST
const $post = (params) => {
  let {
    url,
    data,
    hide,
    onSuccess,
    onError
  } = params
    !hide && wx.showLoading();
  let token = wx.getStorageSync('token')

  wx.request({
    url: baseUrl + url,
    header: {
      'token': token
    },
    method: 'POST',
    data: data,
    success: function (res) {
      wx.hideLoading();
      // token过期，跳到授权页面
      // if (res.data.code === 401) {
      //   wx.reLaunch({
      //     url: '/pages/basicFunction/login/login'
      //   })
      //   return;
      // }

      if (res.data.code !== 0) {
        if (onError) {
          return onError(res);
        }
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // });
        return;
      }
      onSuccess && onSuccess(res);

    }
  })
}

// PUT
const $put = (params) => {
  let {
    url,
    data,
    onSuccess,
    onError
  } = params
  wx.showLoading();
  let token = wx.getStorageSync('token')

  wx.request({
    url: baseUrl + url,
    header: {
      'token': token,
    },
    method: 'PUT',
    data: data,
    success: function (res) {
      wx.hideLoading();
      // token过期，跳到授权页面
      // if (res.data.code === 401) {
      //   wx.reLaunch({
      //     url: '/pages/basicFunction/login/login'
      //   })
      //   return;
      // }

      if (res.data.code !== 0) {
        if (onError) {
          return onError(res);
        }
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // });
        return;
      }
      onSuccess && onSuccess(res);
    }
  })
}

// DELETE
const $delete = (params) => {
  let {
    url,
    data,
    onSuccess,
    onError
  } = params
  wx.showLoading();
  let token = wx.getStorageSync('token')

  wx.request({
    url: baseUrl + url,
    header: {
      'token': token
    },
    method: 'DELETE',
    data: data,
    success: function (res) {
      wx.hideLoading();
      // token过期，跳到授权页面
      // if (res.data.code === 401) {
      //   wx.reLaunch({
      //     url: '/pages/basicFunction/login/login'
      //   })
      //   return;
      // }

      if (res.data.code !== 0) {
        if (onError) {
          return onError(res);
        }
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // });
        return;
      }

      onSuccess && (res);

    }
  })
}

// Upload
const $upload = (params) => {
  let {
    data,
    onSuccess,
    onError
  } = params
  let token = wx.getStorageSync('token')

  wx.showLoading();
  wx.uploadFile({
    url: baseUrl + '/api/file/uploadFile',
    filePath: data.filePath,
    name: 'file',
    header: {
      'token': token,
    },
    success(res) {
      let data = JSON.parse(res.data)
      wx.hideLoading();
      // token过期，跳到授权页面
      // if (data.code === 401) {
      //   wx.reLaunch({
      //     url: '/pages/basicFunction/login/login'
      //   })
      //   return;
      // }

      if (data.code !== 0) {
        if (onError) {
          return onError(res);
        }
        // wx.showToast({
        //   title: res.data.message,
        //   icon: 'none'
        // });
        return;
      }

      onSuccess && (data);
    }
  })
}

module.exports = {
  $get: $get,
  $post: $post,
  $put: $put,
  $delete: $delete,
  $upload: $upload,
}
